package org.csu.softwaremetrics_demo.metric;

import org.csu.softwaremetrics_demo.entity.result.Result;
import org.eclipse.jdt.core.dom.CompilationUnit;

/**
 * 度量指标接口
 * 定义了软件度量指标的基本操作
 * 所有具体的度量指标实现类都需要实现此接口
 */
public interface Metric<SingleClassMetric> {

    /**
     * 执行度量计算
     *
     * @param cu           编译单元，表示一个Java源文件
     * @param singleMetric 用于存储度量结果的对象
     * @param singleMetric 包含所有度量结果的报告
     */
    void execute(CompilationUnit cu, SingleClassMetric singleMetric, Result result);

    /**
     * 设置度量结果
     *
     * @param singleMetric 单个度量结果对象
     */
    void setSingleMetric(SingleClassMetric singleMetric);
}
